Computing systems, for example desktop computers, hand held devices, etc., utilize buses and input-output (I/O) devices, both of which operate on an industry standard system level bus interconnect protocol called Peripheral Component Interconnect (PCI) standard. The PCI standard specifies a bus for attaching I/O devices to a computing system. Additionally, the PCI standard allows an I/O device to communicate with the computing system using pre-defined commands and exchange information such as interrupts, errors and other messages. However, to meet the demands of higher performance, and increased scalability and flexibility, a standard utilizing point to point transmission, having a higher speed and, which is scalable for future improvements, known as PCI Express (PCIe) protocol was developed by the Peripheral Component Interconnect Special Interest Group (PCI-SIG).
The PCIe protocol supports I/O virtualization. I/O virtualization relates to capability of the I/O devices to be used by more than one system image, i.e., by more than one operating system executing on a single host processor. For this, a single root input-output virtualization (SRIOV) standard has been developed by the PCI-SIG. The SRIOV standard is used to route information between the single host processor having multiple system images and virtualized I/O devices. The capabilities of the SRIOV aware switch have been extended by a multi root input-output virtualization (MRIOV) aware switch to allow sharing of the I/O devices between multiple host processors based on the standards of MRIOV provided by the PCI-SIG.
The PCI-SIG further defines MRIOV specifications which are extensions to the PCIe specifications to be implemented by an MRIOV switch to enable I/O device sharing between multiple non-coherent Root Complexes (RC). In a Multi Root PCIe environment, multiple RCs maintain their own PCIe domain which consists of one or more MRIOV aware switches and attached I/O devices, called a virtual hierarchy (VH). An MRIOV aware PCIe switch supports one or more upstream ports and associated VHs. With multiple RCs and several I/O devices, an MRIOV aware switch has to implement multiple VHs and functionalities. Further, with such technology enabling multiple functionalities on a single hardware platform, and hardware platforms becoming more and more portable, the power consumption and the silicon area utilized by increased components like MRIOV aware switch on the hardware platform increases.